МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра БІТ
Звіт
до лабораторної роботи № 3
з курсу «Прикладна криптологія»
на тему: «Шифрування з використанням асиметричних алгоритмів»
Мета роботи: Вивчити особливості шифрування з використанням асиметричних алгоритмів. Дослідження властивостей асиметричних алгоритмів. Порівняльний аналіз асиметричних алгоритмів.
Теоретичні відомості:
Особистий ключ – параметр криптографічного алгоритму формування електронного цифрового підпису, доступний тільки підписувачу.
Відкритий ключ – параметр криптографічного алгоритму електронного цифрового підпису, доступний суб’єктам відносин у сфері використання електронного цифрового підпису.
Генерація ключів (RSA)
Система RSA відноситься до криптосистем з відкритими ключами. В цій системі ключі Еk(Dk, причому один з них має бути особистим, а другий – відкритим. Наприклад, Еk – особистий, а Dk – відкритий, якщо вони використовуються для ЕЦП і навпаки, якщо використовуються для направленого шифрування.
Усі параметри (N,P,Q) також поділяються на 2 класи: N – відкритий, P,Q – конфіденційні (секретні).
Сутність забезпечення моделі взаємної недовіри – кожен користувач генерує ключі сам собі. Особистий ключ залишає в себе і забезпечує його строгу конфіденційність. Відкритий ключ розсилає всім користувачам, з якими він зв'язаний. Користувач також забезпечує цілісність і дійсність відкритих ключів.
Еk, Dk – мають вибиратися з повної множини випадково, порівняно ймовірно і незалежно, мають забезпечувати однозначну оборотність прямого та зворотного перетворення. Відповідним чином засвідчений відкритий ключ є сертифікатом (див. п. 1.1.1).
Значення Еk, Dk для практичних використань мають задовольняти умову
,
де
.
Порівняння (1.54) можна звести до Діафантового рівняння:
ax+by=1. (1.56)
Це діафантове рівняння – нормоване, тому що справа коефіцієнт дорівнює 1; a, b – цілочисельні коефіцієнти, х, у – невідомі. Порівняння (1.54) можна подати у вигляді:
, (1.57)
k – деяке невідоме число.
Діафантове рівняння (1.56) має цілочисельне розв’язання, якщо a і b цілочисленні, і , a і b взаємно прості. Подавши (1.57) у вигляді
, (1.58)
отримаємо а=((N), x=((k), b=Ek, y=Dk .
Якщо Ek сформувати випадково, то а та b – відомі числа, а х та y – невідомі, що підлягають визначенню.
Найбільш швидке розв’язання (1.58) дає застосування ланцюгових дробів, які дозволяють визначити х та у як
, (1.59)
де ( – порядок ланцюгового дробу, a і b – параметри ланцюгового дробу.
Знаходимо параметри:
a/b подається у вигляді ланцюгового дробу
, (1.60)
μ - порядок ланцюгового дробу, перший коефіцієнт, у якого залишок дорівнює 0.
Значення (а0,b0) та (а1,b1) визначаються як
,
.
Значення (а2,b2), (а3,b3) і т.д. визначаються рекурентно відповідно до правил
. (1.61)
Середнє число ітерацій в (1.60), тобто , можна визначити як [16]
.
Завдання:
Занесіть до звіту:
графіки залежностей часу від довжини модуля для різних алгоритмів вироблення ключової пари;
відповіді на питання.
таблицю;
висновок;
Хід роботи:
Результати виконання шифрування
Розмір файлу
Розмір модуля перетворення, біт
Час шифрування ,с
Власний файл
512
0.000
768
0.000
1024
0.000
2048
0.000
219 КБ
512
0.078
768
0.109
1024
0.125
2048
0.256
4,43 МБ
512
1.617
768
2.180
1024
2.653
2048
4.849
8,65 МБ
512
3.015
768
4.215
1024
5.155
2048
9.702
1.Текст для зашифрування.
/
2.Вибираю розмір модуля перетворення (біт).
/
3.Графік
/
Відповіді на контрольні питання
1.Як залежить час вироблення ключової пари від довжини модуля? Алгоритму(проаналізуйте графік)?
Відповідний особистий ключ RSA складається з того ж модуля n і особ...